Ubuntu 14.04
Sponsored Link

OpenStack Liberty : Cinder Storage(LVM)
2015/12/28
 
It's possible to use Virtual Storages provided by Cinder if an Instance needs more disks.
Configure Virtual storage with LVM backend on here.
It needs there are some free spaces on disks of Storage Node.
                                      +------------------+
                             10.0.0.35| [ Storage Node ] |
+------------------+            +-----+   Cinder-Volume  |
| [ Control Node ] |            | eth0|                  |
|     Keystone     |10.0.0.30   |     +------------------+
|      Glance      |------------+
|     Nova API     |eth0        |     +------------------+
|    Cinder API    |            | eth0| [ Compute Node ] |
+------------------+            +-----+   Nova Compute   |
                             10.0.0.51|                  |
                                      +------------------+

[1] Create a volume group for Cinder on Storage Node.
root@storage:~#
pvcreate /dev/sdb1

Physical volume "/dev/sdb1" successfully created
root@storage:~#
vgcreate -s 32M vg_volume01 /dev/sdb1

Volume group "vg_volume01" successfully created
[2] Configure Cinder Volume on Storage Node.
root@storage:~#
vi /etc/cinder/cinder.conf
# add follows into [DEFAULT] section

enabled_backends = lvm
# add follows to the end

[lvm]
iscsi_helper = tgtadm
# volume group name just created

volume_group = vg_volume01
# IP address of Storage Node

iscsi_ip_address = 10.0.0.50
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volumes_dir = $state_path/volumes
iscsi_protocol = iscsi
root@storage:~#
initctl restart tgt

root@storage:~#
initctl restart cinder-volume

[3] Configure Nova on Compute Node.
root@node01:~#
vi /etc/nova/nova.conf
# add follows into [DEFAULT] section

osapi_volume_listen = 0.0.0.0
volume_api_class = nova.volume.cinder.API
root@node01:~#
initctl restart nova-compute

[4] For example, create a virtual disk "disk01" with 10GB. It's OK to work on any node. (This example is on Control Node)
# set environment variable first

root@dlp ~(keystone)#
echo "export OS_VOLUME_API_VERSION=2" >> ~/keystonerc

root@dlp ~(keystone)#
source ~/keystonerc
root@dlp ~(keystone)#
cinder create --display_name disk01 10

+---------------------------------------+--------------------------------------+
|                Property               |                Value                 |
+---------------------------------------+--------------------------------------+
|              attachments              |                  []                  |
|           availability_zone           |                 nova                 |
|                bootable               |                false                 |
|          consistencygroup_id          |                 None                 |
|               created_at              |      2016-01-02T06:21:31.000000      |
|              description              |                 None                 |
|               encrypted               |                False                 |
|                   id                  | 4f440a4a-5cc8-444e-82b2-e5c7b7001c48 |
|                metadata               |                  {}                  |
|            migration_status           |                 None                 |
|              multiattach              |                False                 |
|                  name                 |                disk01                |
|         os-vol-host-attr:host         |                 None                 |
|     os-vol-mig-status-attr:migstat    |                 None                 |
|     os-vol-mig-status-attr:name_id    |                 None                 |
|      os-vol-tenant-attr:tenant_id     |   fa7d34414b8c45c4a2fdc29403fb5cd2   |
|   os-volume-replication:driver_data   |                 None                 |
| os-volume-replication:extended_status |                 None                 |
|           replication_status          |               disabled               |
|                  size                 |                  10                  |
|              snapshot_id              |                 None                 |
|              source_volid             |                 None                 |
|                 status                |               creating               |
|                user_id                |   5efb3edfd2f347eea6258068a06cb9f1   |
|              volume_type              |                 None                 |
+---------------------------------------+--------------------------------------+

root@dlp ~(keystone)#
cinder list

+--------------------------------------+-----------+------------------+--------+------+-------------+----------+-------------+-------------+
|                  ID                  |   Status  | Migration Status |  Name  | Size | Volume Type | Bootable | Multiattach | Attached to |
+--------------------------------------+-----------+------------------+--------+------+-------------+----------+-------------+-------------+
| 4f440a4a-5cc8-444e-82b2-e5c7b7001c48 | available |        -         | disk01 |  10  |      -      |  false   |    False    |             |
+--------------------------------------+-----------+------------------+--------+------+-------------+----------+-------------+-------------+
[5] Attach the virtual disk to an Instance.
For the exmaple below, the disk is connected as "/dev/vdb". It's possible to use it as a storage to create a file system on it.
root@dlp ~(keystone)#
nova list

+-----------+-------------+---------+------------+-------------+-----------------------------------+
| ID        | Name        | Status  | Task State | Power State | Networks                          |
+-----------+-------------+---------+------------+-------------+-----------------------------------+
| a25ba5e7- | Ubuntu_1404 | SHUTOFF | -          | Shutdown    | int_net=192.168.100.3, 10.0.0.201 |
+-----------+-------------+---------+------------+-------------+-----------------------------------+

root@dlp ~(keystone)#
nova volume-attach Ubuntu_1404 4f440a4a-5cc8-444e-82b2-e5c7b7001c48 auto

+----------+--------------------------------------+
| Property | Value                                |
+----------+--------------------------------------+
| device   | /dev/vdb                             |
| id       | 4f440a4a-5cc8-444e-82b2-e5c7b7001c48 |
| serverId | a25ba5e7-d01d-45ab-8484-f61315fa6648 |
| volumeId | 4f440a4a-5cc8-444e-82b2-e5c7b7001c48 |
+----------+--------------------------------------+

# the status of attached disk turns "in-use" like follows

root@dlp ~(keystone)#
cinder list

+-----------+--------+------------------+--------+------+-------------+----------+-------------+----------------+
| ID        | Status | Migration Status |  Name  | Size | Volume Type | Bootable | Multiattach | Attached to    |
+-----------+--------+------------------+--------+------+-------------+----------+-------------+----------------+
| 4f440a4a- | in-use |        -         | disk01 |  10  |      -      |  false   |    False    | a25ba5e7-d01d- |
+-----------+--------+------------------+--------+------+-------------+----------+-------------+----------------+
 
Tweet